package com.piggy.logi.sys.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import com.baomidou.mybatisplus.annotation.*;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;



/**
 * 项目管理对象 logi_project
 *
 * @author piggy
 * @date 2023-08-18
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("logi_project")
public class LogiProject implements Serializable {

    private static final long serialVersionUID=1L;

    /** 主键 */
    @ApiModelProperty("主键")
    @TableId(value = "id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /** 项目名称 */
    @ApiModelProperty("项目名称")
    private String projectName;

    @ApiModelProperty("客户ID")
    private Long customerId;

    /** 部门Id */
    @ApiModelProperty("部门Id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long deptId;

    /** 负责人 */
    @ApiModelProperty("负责人")
    private String leader;

    /** 联系电话 */
    @ApiModelProperty("联系电话")
    private String phone;

    /** 地区id */
    @ApiModelProperty("地区id")
    private Integer districtId;

    /** 地址 */
    @ApiModelProperty("地址")
    private String address;

    /** 开始日期 */
    @ApiModelProperty("开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginDate;

    /** 结束日期 */
    @ApiModelProperty("结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /** 结算类型 */
    @ApiModelProperty("结算类型")
    private String settleType;

    /** 附加信息 */
    @ApiModelProperty("附加信息")
    private String attachInfo;

    /** 现付 */
    @ApiModelProperty("现付")
    private BigDecimal spotPay;

    /** 删除标志（0代表存在 2代表删除） */
    @ApiModelProperty("删除标志（0代表存在 2代表删除）")
    @TableLogic
    private String delFlag;

    /** 到付 */
    @ApiModelProperty("到付")
    private BigDecimal freightPay;

    /** 创建者 */
    @ApiModelProperty("创建者")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /** 欠付 */
    @ApiModelProperty("欠付")
    private BigDecimal arrearsPay;

    /** 创建时间 */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 回单付 */
    @ApiModelProperty("回单付")
    private BigDecimal receiptPay;

    /** 更新者 */
    @ApiModelProperty("更新者")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /** 月结金额 */
    @ApiModelProperty("月结金额")
    private BigDecimal monthlyBalance;

    /** 更新时间 */
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 月结天数 */
    @ApiModelProperty("月结天数")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long monthlyDays;

    /** 附加信息 */
    @ApiModelProperty("备注")
    protected String remark;

}
